#include <vector>

#ifndef HEAP_H
#define HEAP_H
template<Key,Value>
class Heap {
	std::vector<Value> data;
	int leftChild(int i);
	int rightChild(int i);
public:
	Heap<Key, Value>();
	void insert(Key k, Value v);
	void remove(Key k);
	Value& get(Key k);
	Value& getAt(unsigned int i);
	unsigned int size();
	Value& first();
	Value& last();
};
#endif